package com.fujimana.rockincat.restree.init;

import java.util.ArrayList;
import java.util.List;

public class Handlers<T> implements Handler<T> {

	private List<Handler<T>> handlers;
	
	public Handlers() {
		this.handlers = new ArrayList<Handler<T>>();
	}

	@Override
	public T handle(String resource) {
		T ret = null;
		for (Handler<T> h : handlers) {

			if (h.isHandle(resource)) {
				ret = h.handle(resource);
			}
		}
		
		return ret;
	}

	@Override
	public boolean isHandle(String resource) {

		for (Handler<T> h : handlers) {

			if (h.isHandle(resource)) {
				return true;
			}
		}

		return false;
	}

	public void add(Handler<T> handler) {
		handlers.add(handler);
	}
	
	public void remove(Handler<T> handler) {
		handlers.remove(handler);
	}
}
